package com.streamax.app.cqbus.platform.ext

import android.annotation.SuppressLint
import com.kt.coroutinedemo.utils.DateTime
import com.kt.coroutinedemo.utils.PacketUtils


import java.text.SimpleDateFormat
import java.util.*

private val getTimeError = "获取日期异常"
private val ymdhms = "yy-MM-dd HH:mm:ss"
private val hms = "HH:mm:ss"
private val hm = "HH:mm"
private val ymd = "yyyy-MM-dd" // ?压脉带?
private val am = "AM" // 上午
private val pm = "PM" // 下午


/**
 * 获取标准时间   yy-MM-dd HH:mm:ss
 */
fun getCurrentTime() = System.currentTimeMillis().getDateYMDTime()

/**
 * 获取当前时间的DateTime
 */
fun getDateTime() = DateTime(getCurrentTime())


/**
 * 获取标准时间ByteArray
 */
fun  getCurrentTimeByteArray() : ByteArray {
    val byteArrayTime = ByteArray(6)
    val dateTime = DateTime(getCurrentTime())
    PacketUtils.setTime(byteArrayTime,0,dateTime)
    return byteArrayTime
}

/**
 * 直接通过long 获取转换为yy-MM-dd格式的时间
 */
@SuppressLint("SimpleDateFormat")
fun Long.getDateTime(): DateTime {
    val sdf = SimpleDateFormat(ymdhms)
    val dateTime = DateTime(getCurrentTime())
   return dateTime
}

/**
 * 直接通过long 获取转换为yy-MM-dd格式的时间
 */
@SuppressLint("SimpleDateFormat")
fun Long.getDateYMDTime(): String {
    val sdf = SimpleDateFormat(ymdhms)
    sdf.timeZone = TimeZone.getTimeZone("GMT+8")
    return try {
        sdf.format(this)
    } catch (e: Exception) {
        sdf.format(System.currentTimeMillis())
    }
}

/**
 * 日期格式转换为字节形式
 */
val DateTime.toByteArray : ByteArray
    get() = run {
        val byteArrayTime = ByteArray(6)
//        PacketUtils.setTime(byteArrayTime,0,this)
        PacketUtils.setBCDTime(byteArrayTime,0,this)
        return byteArrayTime
    }

/**
 * 日期格式转换为BCD字节形式
 */
val DateTime.toBCDByteArray : ByteArray
    get() = run {
        val byteArrayTime = ByteArray(6)
        PacketUtils.setBCDTime(byteArrayTime,0,this)
        return byteArrayTime
    }






